#ifndef RAYTRACER_H
#define RAYTRACER_H
#include "global_object.h"
#include "RenderArgs.cu"
#include "Scene.cu"
#include "SampleRequest.cu"
#include "SampleResult.cu"
#include "cuda.h"
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include "cuda_runtime_api.h"
#include "curand_kernel.h"
#include "GlobalObj.cu"
#include "Vector3.cu"
#include <stdio.h>

using namespace std;

//global raytracer methods
const int MAX_THREADS = 64;
inline __global__ void renderPixel(RenderArgs* args, Scene* scene);
inline __device__  void renderSample(SampleRequest* request);
inline __device__  SampleRequest generateSample(RenderArgs* args, Camera* camera);

#endif